package com.cls.business.service;

import com.cls.business.entity.DeclareEntrust;

import com.cls.business.entity.DeclareTopic;
import com.cls.business.entity.DelayApply;
import com.cls.business.entity.MaxIndex;
import com.cls.business.vo.DeclareVo;
import com.cls.common.entity.QueryRequest;
import com.cls.system.entity.User;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 委托课题信息附表 Service接口
 *
 * @author slx
 * @date 2020-12-02 14:25:22
 */
public interface IDeclareEntrustService extends IService<DeclareEntrust> {
    /**
     * 查询（分页）
     *
     * @param request QueryRequest
     * @param declareEntrust declareEntrust
     * @return PageInfo<DeclareEntrust>
     */
    PageInfo<DeclareEntrust> findDeclareEntrusts(QueryRequest request, DeclareEntrust declareEntrust);
    PageInfo<DeclareVo> findDeclareEntrustPage(QueryRequest request, DeclareVo declareVo);
    PageInfo<DeclareVo> findDeclareEntrustPageOrder(QueryRequest request, DeclareVo declareVo);

    /**
     * 查询（所有）
     *
     * @param declareEntrust declareEntrust
     * @return List<DeclareEntrust>
     */
    List<DeclareEntrust> findDeclareEntrusts(DeclareEntrust declareEntrust);

    /**
     * 新增
     *
     * @param declareEntrust declareEntrust
     */
    void createDeclareEntrust(DeclareEntrust declareEntrust);

    /**
     * 修改
     *
     * @param declareEntrust declareEntrust
     */
    void updateDeclareEntrust(DeclareEntrust declareEntrust);

    /**
     * 删除
     *
     * @param ids ids
     */
    void deleteDeclareEntrusts(String[] ids);

    DeclareEntrust findByDeclareId(Long declareId);

    void updateCheckEntrust(DeclareTopic declareTopic, User adminUser, MaxIndex maxIndex);

    void updateCheckMember(DeclareTopic declareTopic, User adminUser);

    void updateCheckDelay(DeclareTopic declareTopic, User adminUser);

    void applyDelayApply(DelayApply delayApply);
}
